home *** CD-ROM | disk | FTP | other *** search
-
- -- -----------------------------------------------------------------
- -- Init
- -- -----------------------------------------------------------------
- local function prog_init()
- initModels()
- sound_playMusic("music/rybky04.ogg")
- local pokus = getRestartCount()
-
-
- -- -------------------------------------------------------------
- local function prog_init_room()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
- local boring = 0
-
- room.uzreklnavod = 0
- room.qcount = 0
- if pokus == 1 then
- room.qnavod1 = 110
- room.qnavod2 = 500
- else
- room.qnavod1 = 400
- room.qnavod2 = 2000
- end
- room.kecyoceli = random(100) + 80
- room.malanepohne = 0
- room.malanemuze = 0
- room.tlustoch = 0
- room.restrt = 0
-
- return function()
- if small:getAction() == "rest" and big:getAction() == "rest" then
- boring = boring + 1
- else
- boring = 0
- end
-
- room.qcount = room.qcount + 1
- if room.qcount == 3 then
- addm(15 + random(5), "1st-m-cotobylo")
- addv(6, "1st-v-netusim")
- addv(random(10) + 10, "1st-v-ven")
- addm(3, "1st-m-pockej")
- end
- if no_dialog() and trubka.cinnost == 0 and isReady(small) and isReady(big) then
- if room.qnavod1 > 0 and boring >= room.qnavod1 then
- room.qnavod1 = -1
- addm(5, "1st-m-proc")
- planBusy(small, true, 3)
- addm(5, "1st-m-hej")
- elseif game_getCycles() >= room.qnavod2 and room.qnavod2 ~= -1 then
- room.qnavod1 = -1
- planBusy(small, true, 3)
- addm(5, "1st-m-hej")
- end
- if room.qnavod1 == -1 then
- room.qnavod1 = 600
- room.qnavod2 = -1
- planBusy(big, true, 4)
- addv(5, "1st-v-navod1")
- planBusy(small, false, 3)
- planBusy(big, false, 1)
- planBusy(small, true, 100)
- planBusy(big, true, 2)
- addm(3, "1st-m-navod4")
- addv(0, "1st-v-navod5")
- addm(2, "1st-m-navod6")
- planBusy(big, false, 3)
- planBusy(small, false, 2)
- addv(20, "1st-v-navod7")
- addm(20, "1st-m-navod8")
- if room.uzreklnavod == 0 then
- room.uzreklnavod = 1
- addv(35, "1st-v-davej")
- addm(0, "1st-m-nechtoho")
- addv(5, "1st-v-takdobre")
- end
- end
- if room.kecyoceli == 0 then
- room.kecyoceli = random(600) + 300
- trubka.cinnost = 1
- else
- room.kecyoceli = room.kecyoceli - 1
- end
- if room.malanemuze == 0 and trubka.pohnul == 0 and small.X == 13 then
- room.malanemuze = 1
- addm(random(5) + 2, "1st-m-neprojedu")
- end
- if room.malanepohne == 0 and trubka.pohnul == 0 and small.X == 12 and small.Y >= 10 then
- room.malanepohne = 1
- addm(0, "1st-m-nepohnu")
- end
- if room.malanepohne > 0 then
- room.malanepohne = room.malanepohne + 1
- if trubka.dir == dir_left then
- if room.malanepohne < 50 then
- addv(0, "1st-v-takukaz")
- end
- room.malanepohne = -1
- end
- end
- if room.malanepohne ~= -2 and trubka.dir == dir_left then
- addm(4, "1st-m-hmmm")
- room.malanepohne = -2
- end
- if zidlev.X >= 20 and big.X >= 21 and big.Y == 15 then
- switch(room.tlustoch){
- [0] = function()
- addv(10, "1st-v-nemuzu")
- if random(100) < 50 then
- addv(4, "1st-v-pribral")
- end
- room.tlustoch = room.tlustoch + 1
- end,
- [2] = function()
- addv(10, "1st-v-posunout")
- room.tlustoch = room.tlustoch + 1
- end,
- }
- end
- if big.X < 20 and room.tlustoch == 1 then
- room.tlustoch = room.tlustoch + 1
- end
- if room.restrt == 0 and trubka.X <= 9 and small.X <= trubka.X - 3 then
- planBusy(small, false)
- addm(10, "1st-m-pokud")
- planBusy(big, true, 3)
- addv(3, "1st-v-znovu")
- if random(100) < 50 then
- addm(0, "1st-m-backspace")
- addv(0, "1st-v-jedno")
- end
- planBusy(small, false, 3)
- addv(5, "1st-v-najit")
- planBusy(big, false)
- room.restrt = 1
- end
- end
- if no_dialog() and room.restrt == 0 and small:isOut() and isReady(big) and big.X <= 23 and zidlev.X >= 20 then
- addv(30, "1st-v-chyba")
- planBusy(big, true)
- addv(10, "1st-v-nedostanu")
- planBusy(big, false)
- planBusy(big, true, 50)
- addv(3, "1st-v-stiskni")
- if random(100) < 50 then
- addm(0, "1st-m-backspace")
- addv(0, "1st-v-jedno")
- end
- --[[ TODO: control panel
- addv(5, "1st-v-najit")
- ]]
- planBusy(big, false)
- room.restrt = 1
- end
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_trubka()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- trubka.cinnost = 0
- trubka.pohnul = 0
-
- return function()
- if trubka.dir == dir_left or trubka.dir == dir_right then
- trubka.pohnul = 1
- end
- local anim_table = {
- [1] = function()
- trubka.cinnost = trubka.cinnost + 1
- trubka.afaze = trubka.afaze + 1
- trubka.delay = 7
- end,
- [5] = function()
- if trubka.delay > 0 then
- trubka.delay = trubka.delay - 1
- else
- trubka.cinnost = trubka.cinnost + 1
- end
- end,
- [6] = function()
- trubka.afaze = 5
- trubka.cinnost = trubka.cinnost + 1
- trubka.delay = 8
- end,
- [7] = function()
- if trubka.delay > 0 then
- if random(100) < 10 then
- trubka.afaze = 4
- else
- trubka.afaze = 5
- end
- trubka.delay = trubka.delay - 1
- else
- trubka.cinnost = trubka.cinnost + 1
- end
- end,
- [8] = function()
- trubka:planDialog(0, "1st-x-ocel")
- trubka.cinnost = trubka.cinnost + 1
- end,
- [9] = function()
- if trubka:isTalking() then
- if trubka.afaze == 4 then
- trubka.afaze = 5
- end
- if math.mod(game_getCycles(), 3) == 1 then
- if random(2) == 0 then
- trubka.afaze = trubka.afaze + 1
- else
- trubka.afaze = trubka.afaze - 1
- end
- if trubka.afaze == 4 then
- trubka.afaze = 8
- elseif trubka.afaze == 9 then
- trubka.afaze = 5
- end
- end
- if trubka.afaze == 5 and random(100) < 40 then
- trubka.afaze = 4
- end
- else
- trubka.cinnost = trubka.cinnost + 1
- end
- end,
- [10] = function()
- trubka.afaze = 5
- trubka.cinnost = trubka.cinnost + 1
- end,
- [11] = function()
- trubka.afaze = trubka.afaze - 1
- trubka.cinnost = trubka.cinnost + 1
- end,
- [16] = function()
- trubka.cinnost = 0
- end,
- }
-
- anim_table[2] = anim_table[1]
- anim_table[3] = anim_table[1]
- anim_table[4] = anim_table[1]
- anim_table[12] = anim_table[11]
- anim_table[13] = anim_table[11]
- anim_table[14] = anim_table[11]
- anim_table[15] = anim_table[11]
- switch(trubka.cinnost)(anim_table)
- trubka:updateAnim()
- end
- end
-
- -- --------------------
- local update_table = {}
- local subinit
- subinit = prog_init_room()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_trubka()
- if subinit then
- table.insert(update_table, subinit)
- end
- return update_table
- end
- local update_table = prog_init()
-
-
- -- -----------------------------------------------------------------
- -- Update
- -- -----------------------------------------------------------------
- function prog_update()
- for key, subupdate in pairs(update_table) do
- subupdate()
- end
- end
-
-